High-performance computing, also called cluster computing, is a computing strategy in which a large number of processing cores are tightly coupled so that they can perform large computations in parallel. Data to be operated on may be divided into a number of slices that can be distributed across many different cores. A large number of cores may simultaneously perform the same operation on different data, and then report the result. In this context, a “producer” is a node that has data available. A “consumer” is a node that is to receive those data.